package com.aphrodite.io;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;

import javax.microedition.io.Connector;

/**
 * FileReader is an input stream for reading data from a file.
 */
public class FileReader extends Reader {
	Reader in;

	/** Creates a new FileReader. */
	public FileReader(String filename) throws IOException {
		in = new InputStreamReader(Connector.openInputStream("file://" + filename));
	}

	/** Close the stream. */
	public void close() throws IOException {
		in.close();
	}

	/** Mark the present position in the stream. */
	public void mark(int readAheadLimit) throws IOException {
		in.mark(readAheadLimit);
	}

	/** Tell whether this stream supports the mark() operation. */
	public boolean markSupported() {
		return in.markSupported();
	}

	/** Read a single character. */
	public int read() throws IOException {
		return in.read();
	}

	/** Read characters into an array. */
	public int read(char[] cbuf) throws IOException {
		return in.read(cbuf);
	}

	/** Read characters into a portion of an array. */
	public int read(char[] cbuf, int off, int len) throws IOException {
		return in.read(cbuf, off, len);
	}

	/** Tell whether this stream is ready to be read. */
	public boolean ready() throws IOException {
		return in.ready();
	}

	/** Reset the stream. */
	public void reset() throws IOException {
		in.reset();
	}

	/** Skip characters. */
	public long skip(long n) throws IOException {
		return in.skip(n);
	}
}